1
Dominando el Flujo de Control Avanzado
AI019Lesson 6
00:00

El case expresión es la piedra angular del flujo de control de Elixir. A diferencia de los enunciados switch imperativos, case es una expresión funcional que devuelve el resultado de la rama coincidente, permitiendo a los desarrolladores descomponer tipos de datos complejos como mapas y tuplas instantáneamente, al tiempo que se impone un lógica exhaustiva.

1. Coincidencia de patrones y vinculación

El case expresión te permite probar un valor contra un conjunto de patrones. Ejecuta el código asociado con el primer patrón que coincide y devuelve el valor de ese código. Puedes vincular variables dentro de la coincidencia para usarlas de inmediato en la lógica de la rama.

case dave do
%{state: some_state} = person ->
IO.puts "#{person.name} vive en #{some_state}"
end

2. Flujo lógico visual

ValorPatrón {:ok, val}Patrón {:error, _}Predeterminado _

3. Cláusulas de guarda y exhaustividad

Al utilizar la when palabra clave, puedes aumentar las coincidencias estructurales con lógica de predicado (por ejemplo, is_number(edad) y edad >= 21). Elixir requiere una coincidencia para cada entrada potencial; si ningún patrón coincide, se produce un CaseClauseError se levanta.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>